package com.jiang.daily.Q2900;

import java.util.ArrayList;
import java.util.List;

/**
 * @author Jiang
 * @version 1.0
 * @date 2025/05/15 11:15
 */
class Solution {
//     public List<String> getLongestSubsequence(String[] words, int[] groups) {
//         int n = words.length;
//
//         int start0 = -1;
//         int start1 = -1;
//         for (int i = 0; i < n; i++) {
//             if (groups[i] == 0) start0 = i;
//             break;
//         }
//         for (int i = 0; i < n; i++) {
//             if (groups[i] == 1) start1 = i;
//             break;
//         }
//
//         List<String> res1 = new ArrayList<>();
//         if (start0 != -1) {
//             res1.add(words[start0]);
//             int t = 1;
//             for (int i = start0 + 1; i < n; i++) {
//                 if (groups[i] == t) {
//                     res1.add(words[i]);
//                     t ^= 1;
//                 }
//             }
//         }
//
//         List<String> res2 = new ArrayList<>();
//         if (start1 != -1) {
//             res2.add(words[start1]);
//             int t = 0;
//             for (int i = start0 + 1; i < n; i++) {
//                 if (groups[i] == t) {
//                     res2.add(words[i]);
//                     t ^= 1;
//                 }
//             }
//         }
//
//         return res1.size() > res2.size() ? res1 : res2;
//     }

    // 贪心
    public List<String> getLongestSubsequence(String[] words, int[] groups) {
        List<String> ans = new ArrayList<>();
        int n = words.length;
        for (int i = 0; i < n; i++) {
            if (i == 0 || groups[i] != groups[i - 1]) {
                ans.add(words[i]);
            }
        }
        return ans;
    }
}
